﻿/*********************************************************************************************
'Descripción         Clase de JavaScript en que se ecnuentra todos los metodos utilizados
'                    en el proyecto
'Creado por        : Omar Ricardo Chuman Zuñe
'Fecha de Creación : 09/03/2007
'Sistema           : TODOS
**********************************************************************************************/

//Declaracion de Variables
var vContadorVentanas = 0;

var arrRuta = new Array();
var arrVentana = new Array();



/*
  Descripcion           : Método que permite abrir un formulario en una ventana independiente.
  Parametros            : vPagina          - Ruta de la página a mostrar
                          vToolbar         - Permite establecer si la ventana muestra la barra de herramientas del explorador 0 = NO, 1 = SI
                          vLocation        - Permite establecer si la ventana muestra la barra de Ubicación del explorador 0 = NO, 1 = SI
                          vDirectorio      - Permite establecer si la ventana muestra la barra del Directorio del Explorador 0 = NO, 1 = SI
                          vEstado          - Permite establecer si la ventana muestra la barra de Estado del explorador 0 = NO, 1 = SI
                          vMenubar         - Permite establecer si la ventana muestra la barra de Menu del explorador 0 = NO, 1 = SI
                          vScrollbars      - Permite establecer si la ventana muestra la barra de desplazamiento 0 = NO, 1 = SI
                          vRedimensionable - Permite establecer si la ventana presenta la posibilidad de redimensionarla 0 = NO, 1 = SI
                          vAncho           - Permite establecer el ancho que va ha tener la ventana
                          vAlto            - Permite establecer el alto que va ha tener la ventana
                  
  Forma de Invocacion   : <input type="button" name="btnAbrirVentana" onClick="javascript:f_AbrirVentana('../Reportes/Tablas/frmReporte.aspx','0','0','0','0','1','1','1','900px','700px');">
*/
function f_AbrirVentana(vPagina,vToolbar,vLocation,vDirectorio,vEstado,vMenubar,vScrollbars,vRedimensionable,vAncho,vAlto) {
    
     
   //Se procede a obtener solo los valores en numeros del ancho y alto establecidos de la ventana
    var vSoloNumeroAncho = vAncho.slice(0,vAncho.length-2);
    var vSoloNumeroAlto  = vAlto.slice(0,vAlto.length-2);
    
   //Se procede a obtener los valores del ancho y alto de la pantalla (768*1024,600*800,etc) 
    alto=screen.height;
    ancho=screen.width;
    
    //Se procede a obtener el calculo del eje X e Y
    yposi=(alto-vSoloNumeroAlto)/2;
    xposi=(ancho-vSoloNumeroAncho)/2;
    
    if (vContadorVentanas <1)
    {
        arrRuta[vContadorVentanas]= vPagina;
        arrVentana[vContadorVentanas]= "ventana"+vContadorVentanas;        
        eval(arrVentana[vContadorVentanas] + "=window.open('" + arrRuta[vContadorVentanas] + "','','toolbar=" + vToolbar + ",location=" + vLocation + ",directories=" + vDirectorio + ",status=" + vEstado + ",menubar=" + vMenubar + ",scrollbars=" + vScrollbars + ",resizable=" + vRedimensionable + ",width=" + vAncho + ",height=" + vAlto + ",top=" + yposi + ",left=" + xposi + "')");    
        vContadorVentanas ++;
    }
    else 
    {
        
        var vIndice =f_Busqueda(vPagina);

        if (vIndice!= -1)        
        {            
                if (eval(arrVentana[vIndice]+ ".closed")){
                    eval(arrVentana[vIndice] + "=window.open('" + arrRuta[vIndice] + "','','toolbar=" + vToolbar + ",location=" + vLocation + ",directories=" + vDirectorio + ",status=" + vEstado + ",menubar=" + vMenubar + ",scrollbars=" + vScrollbars + ",resizable=" + vRedimensionable + ",width=" + vAncho + ",height=" + vAlto + ",top=" + yposi + ",left=" + xposi + "')");      
                    
                }
                else{
                    eval(arrVentana[vIndice]+ ".focus()"); 
                }               
        }
        else
        {
            arrRuta[vContadorVentanas]= vPagina;
            arrVentana[vContadorVentanas]= "ventana"+vContadorVentanas;            
            eval(arrVentana[vContadorVentanas] + "=window.open('" + arrRuta[vContadorVentanas] + "','','toolbar=" + vToolbar + ",location=" + vLocation + ",directories=" + vDirectorio + ",status=" + vEstado + ",menubar=" + vMenubar + ",scrollbars=" + vScrollbars + ",resizable=" + vRedimensionable + ",width=" + vAncho + ",height=" + vAlto + ",top=" + yposi + ",left=" + xposi + "')");
            vContadorVentanas++;
        }               
    } 
   
}

function f_Busqueda(vRuta){

        for (var i=0;i<arrRuta.length; i++)
        {
            if (arrRuta[i]==vRuta)            
            {
                return i;
            }           
        }
        return -1;
}

/*
  Descripcion           : Método que permite cerrar una ventana.
  Parametros            : No Presenta
  Forma de Invocacion   : <input type="button" name="btnCerrarVentana" onClick="javascript:javascript:f_CerrarVentana();" value="Salir">
*/
function f_CerrarVentana() {
    window.close();
}


/*
  Descripcion           : Método que permite cerrar sesion.
  Parametros            : No Presenta
  Forma de Invocacion   : <input type="button" name="btnCerrarVentana" onClick="javascript:javascript:f_CerrarVentana();" value="Salir">*/
  
function f_CerrarSession() {
    //Se cierran todas las ventanas
    f_CerrarTodasVentanas();
   // window.open('frmMensajeCerrarSession.aspx','ventana','channelmode=1,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');
}

/*
  Descripcion           : Método que permite cerrar todas las ventanas ventana.
  Parametros            : No Presenta
*/
function f_CerrarTodasVentanas(){


    //Se recorre las ventanas abiertas
	for(m=0;m<arrVentana.length;m++){
	    //Se procede a cerrar todas la ventanas
	     eval(arrVentana[m]+ ".close()");	
    }
    
    vContadorVentanas = 0;
    
    ruta = new Array ();
    ventana = new Array();
}



/*
  Descripcion           : Método que permite establecer una accion o evento a un control determinado cuando se
                          se pulse la tecla 'enter'. La llamada al evento se hace desde un formulario ASPX.
  Parametros            : vEvento      - Establece el Evento que se desea que ejecute el control
                          vIdControl   - Establece el control al que es ejecutado cuando se ejecute el evento
                                           
  Forma de Invocacion   : Me.txtBuscar.Attributes.Add("onkeypress", "return f_EventosControl(event,'" + Me.imbBuscar.ClientID + "')")
                          En este caso se desea que al pulsar la tecla enter se ejecute el evento del boton Buscar
*/
function f_EventosControl(vIdControl){    
      var vControl = document.getElementById(vIdControl);
      vControl.click(); 
      return false;      
}


/*
  Descripción           : Metodo que permite obtener la fecha actual del sistema
  Parámetros            : No presenta
                                           
  Forma de Invocación   : <td> <script> f_ObtenerFecha() </script> </td>
*/
function f_ObtenerFecha(){

    vFecha = new Date()
    
    //Se obtiene el mes, el dia y el año
    vMes = vFecha.getMonth()
    vDiaMes = vFecha.getDate()
    vDiaSemana = vFecha.getDay()
    vAnio = vFecha.getFullYear()
    
    //Se procede a declarar un arreglo para los dias de la semana y
    //un arreglo para los meses del año
    vDias = new Array('Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sábado')
    vMeses = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre')
    
    //Se procede a escribir en el html la fecha obtenido
    document.write('<span id="fecha">')
    document.write (vDias[vDiaSemana] + ", " + vDiaMes + " de " + vMeses[vMes] + " de " + vAnio)
    document.write ('</span>')
}

/*
  Descripción           : Metodo que permite obtener la Hora actual del Sistema actual del sistema
  Parámetros            : No presenta
                                           
  Forma de Invocación   : <td> <script> f_ObtenerFecha() </script> </td>
*/
function f_ObtenerHora(){
var fecha = new Date()
var hora = fecha.getHours()
var minuto = fecha.getMinutes()
var segundo = fecha.getSeconds()
if (hora < 10) {hora = "0" + hora}
if (minuto < 10) {minuto = "0" + minuto}
if (segundo < 10) {segundo = "0" + segundo}
var horita = hora + ":" + minuto + ":" + segundo
document.getElementById('hora').firstChild.nodeValue = horita
tiempo = setTimeout('f_ObtenerHora()',1000)
}

/*
  Descripción           : Método que permite establecer la hora en 000000 al inicio
  Parámetros            : No presenta
                                           
  Forma de Invocación   : <td> <script> f_Inicio() </script> </td>
*/
function f_Inicio(){
document.write('<span id="hora">')
document.write ('000000</span>')

//Invoca al metodo f_ObtenerHora() para obtener la hora
f_ObtenerHora()
}


/*
  Descripcion           : Método que permite realizar la validacion de un control(TextBox), desde un formularios ASPX.
  Parametros            : vLetras      - Establece los caracteres que se desea que valide el control
                          vIdControl   - Establece el control al que es ejecutado cuando se ejecute el evento
                                           
  Forma de Invocacion   : Me.txtTelefonoInstitucion.Attributes.Add("onkeypress", "return f_ValidaDatos('','0-9')")
                          En este caso se desea que mientras el usuario va escribiendo en la caja de texto se valide que ingrese solo numeros
*/

function f_ValidaDatos(vIdControl,vLetras){

var caracteres = new Array;
var vValores = new Array;
var vControl = document.getElementById(vIdControl); 

var cadena = "";

vValores = vLetras.split(",");

    for (i=0;i<vValores.length;i++) { 

            if (vValores[i] == "A-Z"){
                for (k=65;k<=90;k++)
                    cadena = cadena + String.fromCharCode(k) + ",";
                }else if (vValores[i] == "a-z"){
                    for (j=97;j<=122;j++)
                             cadena = cadena + String.fromCharCode(j) + ",";
                    }else if (vValores[i] == "0-9"){
                         for (j=48;j<=57;j++)
                            cadena = cadena + String.fromCharCode(j) + ",";
                         }else{
                                 cadena =  cadena + vValores[i] + ",";
                         }
     } 

cadena = cadena  + String.fromCharCode(32);

caracteres = cadena.split(",");

    if (event.keyCode == BusquedaDeCaracterEnArreglo(caracteres,event.keyCode)){
		    return true;
            }else if (event.keyCode == 13){ 
                  vControl.click(); 
                  return false; 
	            }else{
	                event.keyCode=0;
		            return true; 
	            }
}

function BusquedaDeCaracterEnArreglo(vArreglo,vCaracter){
   for (i=0;i<vArreglo.length;i++) { 
        if (vArreglo[i].charCodeAt(0) == vCaracter){
		    return vArreglo[i].charCodeAt(0);
        } 
     }  
    return -1;
}


/*
  Descripcion           : Método que permite Bloquear el Click Derecho
  Parametros            : Ninguno
                                                                     
  Forma de Invocacion   : document.onmousedown=click
*/
//function click(){
//	var vMensaje = "INVENTARIO - Todos Los Derechos Reservados 2008 \n";
//	if (document.all){
//		if (event.button == 2){
//			alert(vMensaje);
//			return false;
//		}
//	}
//}

//document.onmousedown=click;
